Smart fitness and exercise equipment

ABSTRACT

Described herein is an electronic device mounted in a relation to an exercise apparatus for capturing exercise data for a user of the exercise apparatus. Specifically, the electronic device comprises one or more sensors configured to detect a linear motion, a rotation, or a combination of both linear motion and rotation performed by the exercise apparatus. The electronic device may determine whether the motions correspond to a designated exercise pattern of the exercise apparatus. In response to determining exercise pattern, the electronic device collects a series of motion data from the exercise apparatus and process the series of motion data to generate exercise data. The electronic device may also transmit the exercise data to other client devices of the user or cloud servers.

CROSS-REFERENCE TO RELATED APPLICATION

The present application claims the benefit of U.S. Provisional Patent Application Ser. No. 64/123,456, entitled “Smart Fitness and Exercise Equipment,” filed on Sep. 11, 2015, which is hereby incorporated by reference in its entirety for all purpose.

TECHNICAL FIELD

This application relates generally to an electronic device, and particularly to a smart electronic device that can be embedded in or attached to fitness equipment for capturing exercise data.

BACKGROUND

Today's fitness equipment for muscle exercise and conditioning, such as push-up assists, ab wheelers, dumb-bells, weight machines, and power racks, usually have no intelligence for automatically and timely reporting exercise results and statistics to users through wireless connections and mobile devices. As a result, users who work with the equipment have to memorize or manually note down their routines after each exercise, which is inconvenient to plan and track exercise activities. Wearable devices, such as wristband, smart watch, and smart glasses, may have integrated sensors and applications to track people's movement, such as running or jogging. However, these wearable devices cannot track the usage of abovementioned fitness equipment, because the wearable devices are attached to humans, instead of attached to any fitness equipment.

SUMMARY

A brief summary of various exemplary embodiments is presented. Some simplifications and omissions may be made in the following summary, which is intended to highlight and introduce some aspects of the various exemplary embodiments, but not to limit the scope of the invention. Detailed descriptions of a preferred exemplary embodiment adequate to allow those of ordinary skill in the art to make and use the inventive concepts will follow in later sections.

One or more exemplary embodiments relate to a device mounted in a relation to an exercise apparatus, comprising: one or more sensors configured to detect a linear motion, a rotation, or a combination of both performed by one or more parts of the exercise apparatus; a machine-readable medium encoded with instructions; and one or more processors configured to execute the instructions to perform a process comprising: determining whether the motions correspond to a designated exercise pattern of the exercise apparatus; and in response to determining the designated exercise pattern, collecting a series of motion data from the exercise apparatus; and a networking interface configured to transmit the series of motion data to another device in communication with the device.

In some embodiments, the device is embedded in or attached to the one or more parts of the exercise apparatus. In some embodiments, the one or more sensors include an accelerometer, a gyroscope, a pressure sensor, a photo-electrical sensor, a magnetic-electrical sensor, a mechanical trigger, and a general-purpose input/output circuit. In some embodiments, the designated exercise pattern of the exercise apparatus comprises a plurality of repetitive exercise cycles, each exercise cycle including at least one direction change in linear or angular motion, and durations of each of the plurality of repetitive exercise cycles being regular. In some embodiments, the series of motion data comprises one or more of: time stamps of the motions, a direction of the motions, a number of direction changes in the motions, duration of motions in each direction, applied force, acceleration, and a distance and angle of the motions. In some embodiments, the process further comprises: processing the collected series of motion data to generate exercise data, the exercise data comprising a number of exercise cycles and aggregated exercise metrics based on the series of motion data including applied force, acceleration, and the distance and angle of the motions in each exercise cycles; and transmitting the generated exercise data to the other device in communication with the exercise apparatus. In some embodiments, the device further comprises an energy harvest mechanism configured to convert the motions of the exercise apparatus to electrical power for charging the device. In some embodiments, the other device in communication with the exercise apparatus comprises a computing device associated with a user of the exercise apparatus or a server remote from the exercise apparatus.

One or more exemplary embodiments further relate to a computer-implemented method comprising: detecting motions of an exercise apparatus; determining whether the motions correspond to a designated exercise pattern of the exercise apparatus; in response to determining the designated exercise pattern, collecting a series of motion data from the exercise apparatus; processing the collected series of motion data to generate exercise data; and transmitting the generated exercise data to another device in communication with the exercise apparatus.

One or more exemplary embodiments further relate to a non-transitory machine-readable medium encoded with instructions that, when executed by a processor, cause the processor to perform a process comprising: detecting linear motion, rotation, or a combination of both performed by one or more parts of the of an exercise apparatus; determining whether the motions correspond to a designated exercise pattern of the exercise apparatus; in response to determining the designated exercise pattern, collecting a series of motion data from the exercise apparatus; processing the collected series of motion data to generate exercise data; and transmitting the generated exercise data to another device in communication with the exercise apparatus, the other device including a computing device associated with a user of the exercise apparatus or a server remote from the exercise apparatus.

BRIEF DESCRIPTION OF THE DRAWINGS

Certain features of the subject technology are set forth in the appended claims. However, for purpose of explanation, several embodiments of the subject technology are set forth in the following figures.

FIG. 1 is a block diagram illustrating an example network environment in which a smart fitness and exercising system may be implemented, in accordance with aspects of the subject technology.

FIG. 2 is a block diagram illustrating an example electronic device that implements the smart fitness and exercise system, in accordance with aspects of the subject technology.

FIG. 3 is a flowchart illustrating an example process 300 of the smart exercise capturing system, in accordance with aspects of the subject technology.

FIG. 4 is a diagram illustrating an example actuating gear attached to an inner panel of a moving part of the pushup assist equipment, in accordance with aspects of the subject technology.

FIG. 5 is a diagram illustrating an example actuating gear attached to a still part of the ab wheeler equipment, in accordance with aspects of the subject technology.

FIG. 6 is a diagram illustrating an example actuating mechanism for detachable unit, in accordance with aspects of the subject technology.

FIG. 7 is a block diagram illustrating a conceptual electronic system with which the subject technology can be implemented, in accordance with aspects of the subject technology.

DETAILED DESCRIPTION

The detailed description set forth below is intended as a description of various configurations of the subject technology and is not intended to represent the only configurations in which the subject technology may be practiced. The appended drawings are incorporated herein and constitute a part of the detailed description. The detailed description includes specific details for the purpose of providing a thorough understanding of the subject technology. However, the subject technology is not limited to the specific details set forth herein and may be practiced using one or more implementations. In one or more instances, structures and components are shown in block diagram form in order to avoid obscuring the concepts of the subject technology.

Embodiments disclosed herein are directed to methods, systems and devices for capturing exercise data from fitness and exercise equipment.

As described with, users working with fitness equipment for muscle exercise and conditioning, such as push-up assists, ab wheelers, dumb-bells, weight machines, and power racks, usually have to memorize or manually note down their routines after each exercise. Wearable devices, such as wristband, smart watch, and smart glasses, can track people's movement, such as running or jogging, but may not be able to track the usage of abovementioned fitness equipment.

In some aspects, for a fitness or exercise apparatus to have the intelligence to automatically and timely report exercise results and statistics to users, the apparatus may be able to detect and collect data on the movement of the apparatus during exercise. Such movement can include linear motion, rotation, or any combination of both. Furthermore, the apparatus can process and/or communicate the collected movement data to a mobile device and/or a local or remote server.

In some aspects, motion data may be captured through an electronic device embedded in or attached to the exercise apparatus. The captured motion data can be locally processed and stored or periodically uploaded to cloud servers and storage, which can further process the motion data to generate exercise reports for the users or owners of the apparatus. The exercise data and reports can be accessed and retrieved from the electronic device or the cloud servers and storage through an application on a client device, such as a PC or a mobile phone.

In one or more implementations, the electronic device may comprise a plurality of sensors, such as an accelerometer and a gyroscope for detecting motions, a biometric sensor for tracking user presence or other biometric information, and an environmental sensor for measuring temperature, ambient light or sound. Data collected by these sensors may be uploaded to the cloud servers and storage for generating exercise statistics. The electronic device may also comprise a camera to record photos or videos for user detection and tracking. The electronic device may further comprise control and network modules embodied in software and/or firmware for policy configuration and wireless communication with user devices. Examples of the fitness equipment that can be transformed into smart equipment with such an electronic device may include, but not limited to, push-up assists, ab wheelers, dumbbells, smart weight machines, and power racks.

FIG. 1 is a block diagram illustrating an example network environment 100 in which a smart fitness and exercising system may be implemented, in accordance with aspects of the subject technology. Not all of the depicted components may be used, however, and one or more implementations may include additional components not shown in the figure. Variations in the arrangement and types of the components may be made without departing from the spirit or scope of the claims as set forth herein. Additional, different or fewer components may be provided.

The network environment 100 comprises a communications network 110 and a plurality of entities connected to the network 110, including one or more smart electronic devices 120 embedded in or attached to fitness and exercise apparatuses, one or more client devices 130 and one or more cloud servers and storage 140. The communication network 110 may include, and/or may be communicatively coupled to, one or more of the Internet, a private network, a wearable devices network, an Internet of things network, or other networks. The network 110 may include one or more wired or wireless network devices that facilitate communications of the one or more smart electronic devices 120, the one or more client devices 130, and/or the cloud servers and storage 140. In one or more implementations, the smart electronic devices 120 may establish a direct network connection (e.g. via Bluetooth, near-field communication (NFC), or WiFi etc.) with one or more of the client devices 130 without communicating through the network 110.

The smart electronic devices 120 embedded in or attached to fitness and exercise apparatuses can be any electronic device that detects, collects, and stores motion data regarding an exercise apparatus including, but not limited to, push-up assists, ab wheelers, dumbbells, weight machines, and power racks. The electronic devices 120 may have the intelligence to determine whether the apparatus is being used for exercise. The electronic devices 120 can also be configured to communicate wirelessly with the client devices 130 and the cloud servers and storage 140. For example, the smart electronic devices 120 may sense or detect movements of an exercise apparatus, such as linear motion, rotation, or any combination thereof. If the motion data collected and processed by the device is determined to be corresponding to a designated exercise pattern of the exercise apparatus, the data may be uploaded to the client devices 130 and/or the cloud servers and storage 140 periodically (e.g., once an hour), or whenever wireless connectivity is available. An example electronic device 102 is discussed further below with respect to FIG. 2.

The client devices 130 can be connected to the network 110 to receive the motion or exercise data captured by the electronic devices 120 using a client application. The client devices 130 include a personal computer (e.g., a desktop, laptop, or netbook), a tablet computer, a personal digital assistant (PDA), a pager, a mobile or smart phone, a wireless sensor, any consumer electronic devices (e.g., a set-top box) and the like. In some cases, the electronic devices 120 may directly transfer the motion or exercise data to the client device 130. In other cases, the data captured and processed by the electronic devices 120 can be first uploaded to the cloud servers and storage 140, and then retrieved by the client device 130 later across the network 110.

The client devices 130 may be configured with computer software, executable programs, algorithms, functional modules and processes for receiving the exercise data. As illustrated in FIG. 1, an application 132 may be downloaded and used by a user to keep track of his or her exercise on a real-time basis from the electronic devices 120 and/or check current or past records of the exercises from the cloud servers and storage 140. In general, the application 132 may comprise a login or registration module for users to manage their profile or account information, a primary user interface that integrates most functions of the application, and a configuration or settings module. For instance, the primary user interface of the application 132 may allow the users to receive and view reminders, notifications and reports of their exercise or workout activities.

The cloud servers and storage 140 usually comprises multiple web servers configured to store large amounts of data from various data sources. In one embodiment, at least one back-end server in the cloud servers and storage 140 may be programmed with a data processing algorithm or web-based application for analyzing and processing the sensor data (e.g., motion data from accelerometer and gyroscope, photo images, and videos etc.) uploaded by the electronic device 120. The data processing algorithm combines the raw sensor data with other contextual information, such as time of the day, to perform data analyses and generate useful reports for the users. The sensor data analyses and generated reports can be either stored in the cloud servers and storage 140 or transmitted to the client device 130. As an example, one such report may be pulled by or pushed to a client device to show the users of workout statistics, exercise target, or health conditions.

It should be appreciated that the network environment 100 in FIG. 1 is for illustration purpose only and can be implemented with many variations without departing from the spirit of the disclosure. For instance, the cloud servers and storage 140 may include multiple computers and stations distributed in different locations. In some embodiments, the electronic devices 120 and/or the client devices 130 may preprocess or process the motion/exercise data before uploading the data to the cloud servers and storage 140 for analyses and storage.

FIG. 2 is a block diagram illustrating an example electronic device 120 that implements the smart fitness and exercise system, in accordance with aspects of the subject technology. Note that not all of the depicted components may be used, however, and one or more implementations may include additional components not shown in the figure. Variations in the arrangement and type of the components may be made without departing from the spirit or scope of the claims as set forth herein. Additional components, different components, or fewer components may be provided.

The smart electronic device 120 can be embedded in or attached to fitness and exercise apparatuses for detecting, collecting, and transmitting motion and exercise data associated with the exercise apparatuses. As shown in FIG. 2, the electronic device 120 comprises one or more processors 210, a memory 220 accessible by the processor(s) 210, a plurality of motion sensors 230 configured to communicate with the processors 210 and the memory 220, and one or more network interfaces 240. The motion sensors 230 may include an accelerometer 232 for measuring acceleration, a gyroscope 234 for measuring orientation, and various electrical switches 236 and mechanical switches 238 for detecting motions. The electrical switches 236 may further include general-purpose input/output (GPIO) pins, Reed switches, Hall effect sensors, photo interrupters, among other optical, magnetic or electrical mechanisms. The mechanical switches 238 may further include pressure sensors, mechanical buttons, among other mechanical triggers. The network interfaces 240 can be any interface providing wireless connectivity, such as Bluetooth, near-field communication (NFC), WiFi, Zigbee, infrared, ultraband, mobile radio, cellular, cordless phone, satellite radio, and the like.

The memory 220 may be any memory, such as dynamic random-access memory (DRAM). While the memory 220 is shown as separate from the processor 210, all or a portion of the memory 220 may be embedded in the processor 210. As illustrated in FIG. 2, the memory 220 stores various programs, modules and data structures, or a subset thereof, including but not limited to a motion capture module 222, a motion feature module 224, a data aggregator module 226, and a configuration module 228. For illustration purposes, these modules are shown as separate, but in actual implementations, they can be integrated into one software application or further divided into different sub-modules. In practice, the processor 210 is configured to execute the modules stored in the memory 220 to accomplish various functions of the electronic device 120, as will be described in detail below.

In one or more implementations, the one or more of the processor 210, the memory 220, the one or more network interfaces 240, the motion capture module 222, the motion feature module 224, the data aggregator module 226, and the configuration module 228 may be implemented in software (e.g., subroutines and code). In one or more implementations, the processor 210, the memory 220, the one or more network interfaces 240, the motion capture module 222, the motion feature module 224, the data aggregator module 226, and the configuration module 228 may be implemented in hardware (e.g., an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Programmable Logic Device (PLD), a controller, a state machine, gated logic, discrete hardware components, or any other suitable devices) and/or a combination of both. Additional features and functions of these modules according to various aspects of the subject technology are further described in the present disclosure.

FIG. 3 is a flow diagram illustrating an example process 300 of the smart exercise capturing system, in accordance with aspects of the subject technology. For explanatory purposes, the example process 300 is primarily described herein with reference to electronic device 120 of FIGS. 1-2; however, the example process 300 is not limited to the electronic device 120 and may be performed by one or more components of the electronic device 120. In one or more implementations, the client device 130, rather than, and/or in addition to, the electronic device 120, may also perform all or part of the example process 300. Further for explanatory purposes, the steps of the example process 300 are described herein as occurring in serial, or linearly. However, multiple steps of the example process 300 may occur in parallel. In addition, the steps of the example process 300 may be performed a different order than the order shown and/or more or less steps of the example process 300 may be performed.

The process 300 starts when the electronic device 120 detects (step 302) motion of an exercise apparatus, which may be detected by the motion sensors 230 embedded in or attached to an exercise apparatus. For example, the motion sensors 230 may be able to differentiate the direction of motions by indicating whether the exercise apparatus is moving in one direction or the other in linear, angular, or any combinations of the two types of motions. Moreover, the motion sensors 230 can tell that a full cycle of motion is to be completed when there is a change in the motion direction. For instance, in case an accelerometer is used as the motion sensor, the direction change can be identified from the sensor measurement. In another example, two or more GPIOs, or two or more Hall switches can be used as electrical or mechanical triggers to detect directions and change of directions in movements.

The electronic device 120 then determines (step 303) whether the motions correspond to exercise pattern. Exercise patterns may be determined by the motion feature module 224 based on simple rules or thresholds. An example exercise pattern may involve a repetitive linear or angular motion with at least one direction change in each motion cycle, and a relatively constant duration or gap between motion cycles. The time stamp of each detected motion cycle can be analyzed to determine whether the duration or gap is regular. The cycle duration or the gap between cycles may vary from user to user depending on users' habits and/or physical conditions. Based the detected motions and the time stamps of the sensed motions, the motion feature module 224 can reliably recognize exercise patterns associated with users of the exercise apparatus. The exercise pattern recognition functionality may be offloaded to the client devices 130 or the cloud servers and storage 140.

If there is no exercise pattern determined, the electronic device 120 goes back to step 302 and waits for further motions. Sometimes even if the motion sensors 230 detect motions, the motions may not necessarily involve exercise. For example, kids may play with a pushup assist by randomly turning it around, or a user may be moving dumbbells from one room to another. The motion feature module 224 has the intelligence to distinguish these kinds of movement from exercise motions to ensure data collected only for exercises.

Otherwise, an exercise pattern is thus determined, the electronic device 120 collects (step 304) a series of motion data from the exercise apparatus. The electronic device 120 may subsequently process (step 306) the collected series of motion data to generate exercise data. For example, the motion capture module 222 may capture raw sensor data, such as repetitive linear or angular motions with direction changes, from accelerometer and gyroscope, as well as electrical and mechanical switches. The data aggregator module 226 of the electronic device 120 may aggregates the sensor data into data sets organized into a time series based on the time stamp of sensed motions. The data aggregator module 226 may further process the data set to generate exercise statistics, such as characteristic of sensed motions (e.g. direction indicators), number of sensed motions in each direction, number of direction changes in each exercise cycle, number of exercise cycles, and one or more quality metrics derived from sensor data, e.g., applied force, accelerations, shift distance, sway angels, among other metrics.

The electronic device 120 can transmit (step 308) the generated exercise data to another device in communication with the exercise apparatus. For example, the electronic device 120 may transmit the motion or exercise data through the network interfaces 240 to the client device 130 and/or the cloud servers and storage 140.

One of the challenges to integrate the electronic device 120 with an exercise apparatus is to supply power to the electronic device 120. In some implementations, rechargeable or non-rechargeable batteries can be used to power the electronic device 120. Alternatively, battery-less mechanism can be designed to harvest energy from the motions of the exercise apparatus itself. The energy-harvesting mechanism may includes, but not limited to, a power motor, an electromagnetic device, a piezoceramic device, a magnetostrictive device, among other mechanisms. Batteries and energy-harvesting mechanism can also be combined to provide power.

When an energy-harvesting mechanism is applied, actuators can be added to the exercise apparatus so that motions of the apparatus can be converted into energy. An exercise apparatus may often comprise one or more moving parts and one or more still parts when used for exercise. For example, during exercise, the base of a pushup assist remains still, but the upper portion with handles is always rotating. For an Ab wheeler, the handles are often still and the wheel is moving back and forth. Depending on the design, actuators can be installed on either a still part or a moving part. Exemplary designs of actuators are illustrated in FIGS. 4-6.

FIG. 4 is a diagram illustrating an example actuating gear attached to an inner panel of a moving part of the pushup assist equipment, in accordance with aspects of the subject technology. The actuating mechanism shown in FIG. 4 comprises an energy-harvesting unit 401, which may be integrated with the electronic devices 120, a linking tooth on the energy harvester/generator 402, a moving part of the equipment 403, a linking tooth on actuator 404, and actuator buttons 405 to pass direction information to the electronic devices 120. The gear on the energy-harvesting mechanism can also be designed as a lever in the shape of a gear tooth. When moved by the actuating gear, the lever may move in the perpendicular direction of the rotating plane of the actuating gear.

FIG. 5 is a diagram illustrating an example actuating gear 500 attached to a still part of ab wheeler equipment, in accordance with aspects of the subject technology. The actuating mechanism shown in FIG. 5 comprises an energy harvester unit 501, which may be integrated with the electronic devices 120, a linking tooth on the energy harvester/generator 502, a linking tooth on actuator 504, a moving part 521 (e.g., wheel) of the ab wheeler, and handles 523 of the ab wheeler.

In some implementations, instead of being integrated or embedded into an exercise apparatus, the electronic device 120 can be packaged into a standalone unit. The standalone unit can be readily attached to an exercise apparatus through sticky or magnetic pads, and convert the dumb equipment into a smart exercise apparatus. The detachable unit may comprise the same processors 210, motion sensors 230, memory 220 and network interfaces 240. The detachable unit can also performs the same tasks as the embedded device, such as sensing motion as well as detecting, collecting and transmitting exercise data from the electronic device 120 to the client devices 130 and the cloud servers and storage 140 through the network 110.

In one implementation, the detachable unit comprises one or more batteries to power the unit. Alternatively or in addition, a battery-less energy-harvesting mechanism can be adopted to power the detachable unit. Because the detachable unit is attached to the exterior surface of the equipment, the actuation mechanism may be based on mechanical acceleration. FIG. 6 illustrates such an actuating mechanism 600 for the detachable unit, in accordance with aspects of the subject technology. As shown in FIG. 6, a moving mass 603 is supported by at least two springs 604, with at least one spring on each side of the moving mass. The strength of the springs ensures that the mass can only move in one plane, which is the same plane along the motion of the exercise apparatus.

The sticky or magnetic pads on the detachable unit may be arranged such that the detachable unit can only be attached vertically or horizontally. In some implementations, the detachable unit has two detachable sides perpendicular to each other, one of which is the narrow edge of the unit. In the exemplary illustration in FIG. 6, the detachable unit comprises a detachable unit shell 601, an energy harvester unit 602, which may be combined with the electronic device 120, the moving mass 603 driving the energy harvester/generator, and the springs 604 supporting/linking the moving mass 603, and sticky/magnetic pads 605 to attach the unit on an exercise apparatus.

FIG. 7 is a block diagram illustrating a conceptual electronic system with which the subject technology can be implemented, in accordance with aspects of the subject technology. Computing device 700 may be a computing device for execution of software associated with one or more portions or steps of process 300, or components and processes provided by FIGS. 1-2. Computing device 700 may be representative of the computing device described above. In this regard, computing device 700 may be a personal computer or a mobile device such as a smartphone, tablet computer, laptop, PDA, or other touch screen or television with one or more processors embedded therein or coupled thereto, or any other sort of computer-related electronic device having network connectivity.

Computing device 700 may include various types of computer readable media and interfaces for various other types of computer readable media. In the depicted example, computing device 700 includes a bus 708, processing unit(s) 712, a system memory 704, a read-only memory (ROM) 710, a permanent storage device 702, an input device interface 714, an output device interface 706, and one or more network interfaces 716. In some implementations, computing device 700 may include or be integrated with other computing devices or circuitry for operation of the various components and processes previously described.

Bus 708 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of computing device 700. For instance, bus 708 communicatively connects processing unit(s) 712 with ROM 710, system memory 704, and permanent storage device 702.

From these various memory units, processing unit(s) 712 retrieves instructions to execute and data to process in order to execute the processes of the subject disclosure. The processing unit(s) can be a single processor or a multi-core processor in different implementations.

ROM 710 stores static data and instructions that are needed by processing unit(s) 712 and other modules of the electronic system. Permanent storage device 702, on the other hand, is a read-and-write memory device. This device is a non-volatile memory unit that stores instructions and data even when computing device 700 is off. Some implementations of the subject disclosure use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as permanent storage device 702.

Other implementations use a removable storage device (such as a floppy disk, flash drive, and its corresponding disk drive) as permanent storage device 702. Like permanent storage device 702, system memory 704 is a read-and-write memory device. However, unlike storage device 702, system memory 704 is a volatile read-and-write memory, such a random access memory. System memory 704 stores some of the instructions and data that the processor needs at runtime. In some implementations, the processes of the subject disclosure are stored in system memory 704, permanent storage device 702, and/or ROM 710. From these various memory units, processing unit(s) 712 retrieves instructions to execute and data to process in order to execute the processes of some implementations.

Bus 708 also connects to input and output device interfaces 714 and 706. Input device interface 714 enables the user to communicate information and select commands to the electronic system. Input devices used with input device interface 714 include, e.g., alphanumeric keyboards and pointing devices (also called “cursor control devices”). Output device interfaces 706 enables, e.g., the display of images generated by the computing device 700. Output devices used with output device interface 706 include, e.g., printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD). Some implementations include devices such as a touchscreen that functions as both input and output devices.

Finally, as shown in FIG. 7, bus 708 also couples computing device 700 to a network (not shown) through network interfaces 716. Network interfaces 716 may include, e.g., a wireless access point (e.g., Bluetooth or WiFi) or radio circuitry for connecting to a wireless access point. Network interfaces 716 may also include hardware (e.g., Ethernet hardware) for connecting the computer to a part of a network of computers such as a local area network (“LAN”), a wide area network (“WAN”), wireless LAN, or an Intranet, or a network of networks, such as the Internet. Any or all components of computing device 700 can be used in conjunction with the subject disclosure.

These functions described above can be implemented in computer software, firmware or hardware. The techniques can be implemented using one or more computer program products. Programmable processors and computers can be included in or packaged as mobile devices. The processes and logic flows can be performed by one or more programmable processors and by one or more programmable logic circuitry. General and special purpose computing devices and storage devices can be interconnected through communication networks.

Some implementations include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media). Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROM), recordable compact discs (CD-R), rewritable compact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic and/or solid state hard drives, read-only and recordable Blu-Ray® discs, ultra density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable media can store a computer program that is executable by at least one processing unit and includes sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.

While the above discussion primarily refers to microprocessor or multi-core processors that execute software, some implementations are performed by one or more integrated circuits, such as app specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some implementations, such integrated circuits execute instructions that are stored on the circuit itself.

As used in this specification and any claims of this app, the terms “computer”, “server”, “processor”, and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people. For the purposes of the specification, the terms display or displaying means displaying on an electronic device. As used in this specification and any claims of this app, the terms “computer readable medium” and “computer readable media” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.

To provide for interaction with a user, implementations of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; e.g., feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; e.g., by sending web pages to a web browser on a user's client device in response to requests received from the web browser.

Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an app server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, a server transmits data (e.g., an HTML page) to a client device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the client device). Data generated at the client device (e.g., a result of the user interaction) can be received from the client device at the server.

Those of skill in the art would appreciate that the various illustrative blocks, modules, elements, components, methods, and algorithms described herein may be implemented as electronic hardware, computer software, or combinations of both. To illustrate this interchangeability of hardware and software, various illustrative blocks, modules, elements, components, methods, and algorithms have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular app and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular app. Various components and blocks may be arranged differently (e.g., arranged in a different order, or partitioned in a different way) all without departing from the scope of the subject technology.

It is understood that the specific order or hierarchy of steps in the processes disclosed is an illustration of example approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the processes may be rearranged. Some of the steps may be performed simultaneously. The accompanying method claims present elements of the various steps in a sample order, and are not meant to be limited to the specific order or hierarchy presented.

The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. The previous description provides various examples of the subject technology, and the subject technology is not limited to these examples. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but is to be accorded the full scope consistent with the language claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more.” Unless specifically stated otherwise, the term “some” refers to one or more. Pronouns in the masculine (e.g., his) include the feminine and neuter gender (e.g., her and its) and vice versa. Headings and subheadings, if any, are used for convenience only and do not limit the invention.

The term web site, as used herein, may include any aspect of a web site, including one or more web pages, one or more servers used to host or store web related content, etc. Accordingly, the term website may be used interchangeably with the terms web page and server. The predicate words “configured to”, “operable to”, and “programmed to” do not imply any particular tangible or intangible modification of a subject, but, rather, are intended to be used interchangeably. For example, a processor configured to monitor and control an operation or a component may also mean the processor being programmed to monitor and control the operation or the processor being operable to monitor and control the operation. Likewise, a processor configured to execute code can be construed as a processor programmed to execute code or operable to execute code.

A phrase such as an “aspect” does not imply that such aspect is essential to the subject technology or that such aspect applies to all configurations of the subject technology. A disclosure relating to an aspect may apply to all configurations, or one or more configurations. An aspect may provide one or more examples. A phrase such as an aspect may refer to one or more aspects and vice versa. A phrase such as an “embodiment” does not imply that such embodiment is essential to the subject technology or that such embodiment applies to all configurations of the subject technology. A disclosure relating to an embodiment may apply to all embodiments, or one or more embodiments. An embodiment may provide one or more examples. A phrase such as an “embodiment” may refer to one or more embodiments and vice versa. A phrase such as a “configuration” does not imply that such configuration is essential to the subject technology or that such configuration applies to all configurations of the subject technology. A disclosure relating to a configuration may apply to all configurations, or one or more configurations. A configuration may provide one or more examples. A phrase such as a “configuration” may refer to one or more configurations and vice versa.

The word “example” is used herein to mean “serving as an example or illustration.” Any aspect or design described herein as “example” is not necessarily to be construed as preferred or advantageous over other aspects or designs.

All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed under the provisions of 35 U.S.C. §112, sixth paragraph, unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “step for.” Furthermore, to the extent that the term “include,” “have,” or the like is used in the description or the claims, such term is intended to be inclusive in a manner similar to the term “comprise” as “comprise” is interpreted when employed as a transitional word in a claim. 

What is claimed is:
 1. A device mounted in a relation to an exercise apparatus, comprising: one or more sensors configured to detect a linear motion, a rotation, or a combination of both performed by one or more parts of the exercise apparatus; a machine-readable medium encoded with instructions; and one or more processors configured to execute the instructions to perform a process comprising: determining whether the motions correspond to a designated exercise pattern of the exercise apparatus; and in response to determining the designated exercise pattern, collecting a series of motion data from the exercise apparatus; and a networking interface configured to transmit the series of motion data to another device in communication with the device.
 2. The device of claim 1, wherein the device is embedded in or attached to the one or more parts of the exercise apparatus.
 3. The device of claim 1, wherein the one or more sensors include an accelerometer, a gyroscope, a pressure sensor, a photo-electrical sensor, a magnetic-electrical sensor, a mechanical trigger, and a general-purpose input/output circuit.
 4. The device of claim 1, wherein the designated exercise pattern of the exercise apparatus comprises a plurality of repetitive exercise cycles, each exercise cycle including at least one direction change in linear or angular motion, and durations of each of the plurality of repetitive exercise cycles being regular.
 5. The device of claim 1, wherein the series of motion data comprises one or more of: time stamps of the motions, a direction of the motions, a number of direction changes in the motions, duration of motions in each direction, applied force, acceleration, and a distance and angle of the motions.
 6. The device of claim 5, wherein the process further comprises: processing the collected series of motion data to generate exercise data, the exercise data comprising a number of exercise cycles and aggregated exercise metrics based on the series of motion data including applied force, acceleration, and the distance and angle of the motions in each exercise cycles; and transmitting the generated exercise data to the other device in communication with the exercise apparatus. The device of claim 1, further comprising: an energy harvest mechanism configured to convert the motions of the exercise apparatus to electrical power for charging the device.
 8. The device of claim 1, wherein the other device in communication with the exercise apparatus comprises a computing device associated with a user of the exercise apparatus or a server remote from the exercise apparatus.
 9. A computer-implemented method, comprising: detecting motions of an exercise apparatus; determining whether the motions correspond to a designated exercise pattern of the exercise apparatus; in response to determining the designated exercise pattern, collecting a series of motion data from the exercise apparatus; processing the collected series of motion data to generate exercise data; and transmitting the generated exercise data to another device in communication with the exercise apparatus.
 10. The computer-implemented method of claim 9, wherein the motions include linear motion, rotation, or a combination of both performed by one or more parts of the of the exercise apparatus.
 11. The computer-implemented method of claim 9, wherein the motions are detected by at least one of an accelerometer, a gyroscope, a pressure sensor, a photo-electrical sensor, a magnetic-electrical sensor, a mechanical trigger, and a general-purpose input/output circuit.
 12. The computer-implemented method of claim 9, wherein the designated exercise pattern of the exercise apparatus comprises a plurality of repetitive exercise cycles, each exercise cycle including at least one direction change in linear or angular motion, and durations of each of the plurality of repetitive exercise cycles being regular.
 13. The computer-implemented method of claim 9, wherein the series of motion data comprises one or more of: time stamps of the motions, a direction of the motions, a number of direction changes in the motions, duration of motions in each direction, applied force, acceleration, and a distance and angle of the motions.
 14. The computer-implemented method of claim 13, wherein the generated exercise data comprises: a number of exercise cycles and aggregated exercise metrics based on the series of motion data including applied force, acceleration, and the distance and angle of the motions in each exercise cycles.
 15. The computer-implemented method of claim 9, further comprising: converting the motions of the exercise apparatus to electrical power for charging the exercise apparatus.
 16. The computer-implemented method of claim 9, wherein the other device in communication with the exercise apparatus comprises a computing device associated with a user of the exercise apparatus or a server remote from the exercise apparatus.
 17. A non-transitory machine-readable medium encoded with instructions that, when executed by a processor, causes the processor to perform a process comprising: detecting linear motion, rotation, or a combination of both performed by one or more parts of the of an exercise apparatus; determining whether the motions correspond to a designated exercise pattern of the exercise apparatus; in response to determining the designated exercise pattern, collecting a series of motion data from the exercise apparatus; processing the collected series of motion data to generate exercise data; and transmitting the generated exercise data to another device in communication with the exercise apparatus, the other device including a computing device associated with a user of the exercise apparatus or a server remote from the exercise apparatus.
 18. The non-transitory machine-readable medium of claim 17, wherein the motions are detected by at least one of an accelerometer, a gyroscope, a pressure sensor, a photo-electrical sensor, a magnetic-electrical sensor, a mechanical trigger, and a general-purpose input/output circuit, and wherein the designated exercise pattern of the exercise apparatus comprises a plurality of repetitive exercise cycles, each exercise cycle including at least one direction change in linear or angular motion, and durations of each of the plurality of repetitive exercise cycles being regular.
 19. The non-transitory machine-readable medium of claim 17, wherein the series of motion data comprises one or more of: time stamps of the motions, a direction of the motions, a number of direction changes in the motions, duration of motions in each direction, applied force, acceleration, and a distance and angle of the motions, and wherein the generated exercise data comprises: a number of exercise cycles and aggregated exercise metrics based on the series of motion data including applied force, acceleration, and the distance and angle of the motions in each exercise cycles.
 20. The non-transitory machine-readable medium of claim 17, wherein the process further comprises: converting the motions of the exercise apparatus to electrical power for charging the exercise apparatus. 